線上影音

Home > ANSYS Designer 教學 >不同corner與V-T穩態移除時的IBIS超頻問題

 

本文始於2014年,並分別於2018、2019更新。目的在於研究IBIS超頻問題,與不同設定條件下其輸出波形的變化。

  1. 介紹

    1.1 免費IBIS檢視工具

    1.2 IBIS超頻是指什麼

    1.3 下載美光IBIS模型

    1.4 IBIS超頻所引起的問題症狀

  2. UI(938ps) >> V-T Window 469ps (高速模型低速使用,大材小用也不好)

    2.1 使用1066MHz模型(正確)

    2.2 使用2133MHz模型(不正確)

    2.3 考慮封裝寄生效應對上升/下降時間的影響

  3. UI(469ps) = V-T Window 469ps

    3.1 使用2133MHz不同corner(fast\typ\slow)

    3.2 初始延遲移除

    3.3 末端穩態移除

  4. UI(300ps) < V-T Window 469ps (模擬頻率超出模型定義,發生超頻)

    4.1 使用2133MHz不同corner(fast\typ\slow)

    4.2 初始延遲移除

    4.3 末端穩態移除

  5. 問題與討論

    5.1 (slow, min)或(fast, max)是一樣的結果嗎?

    5.2 IBIS model為何Rising\Falling V-T table各有兩組?

    5.3 如何能觀察出IBIS超頻有問題時的波形不連續性?

    5.4 如何估算出一個IBIS模型可運行的最大(最高)頻率? (important)

    5.5 為何某些IBIS模型在Mentor viewer無法顯示,但Sintecs viewer卻可以?

    5.6 為何手動安全移除穩態區的IBIS 5.1 power-aware模型所得到的SSN電流,仍然與自動移除的不同?

  6. Reference

  1. Introduction

1.1 免費IBIS檢視工具 

IBIS.org 官網,可以找到一些免費的IBIS viewer,像 IBIS Development StudioSPILiteVisual IBIS Editor ... 等。

1.2 IBIS超頻是指什麼 

於Circuit HELP, p.2535 [2] 搜尋 "Transition Settling Times" 關鍵字

-- Over Clocking:Next transition is triggered when this transition is not finished.[1]

-- Transistor level buffer behavior for over clocking:This transition will continue with a delay time, and then start new transition.

-- IBIS buffer behavior for over clocking:Difference exists for different tools.[1] Over clocking will cause discontinue waveform.[2]

IBIS model is generated from Spice Transistor-level model, and it contains an initial delay. When stimulus switching frequency gets higher, the timing of rising and falling edges are very different than Spice model simulation result. It is NOT showing "ISI" facts as the results from Spice model simulations. [3] IBIS在較高頻率切換時,其所反映的ISI可能與Spice的結果大不相同(已經發生超頻)。

"Initial delay" is NOT "Buffer delay". [3]

Just IBIS models suffer from the over clocking issue, and SPICE models don't.

Be careful to ensure that the frequency of the input signal does not exceed the capabilities of the IBIS model. The frequency of the input signal must consider the time required for the output to settle. [2]

1.3 下載美光IBIS模型 

下載Micron DDR3 v69a (2010)

上圖所示DDRIII-2133模型的V-T window寬是469ps,正好就是頻率的倒數。從V-T曲線可看出,此例美光把初始延遲調得很短(~20ps for initial delay),但尾巴留的很長(80p~120ps for tail steady state),讓使用者超頻使用時有最大的餘量不會出現波形錯誤。

為何這IBIS模型的檔頭只聲明*_1066, *_1333與量測相符,沒有寫*_1600/2133與量測相符? 請參閱5.4

1.4 IBIS超頻所引起的問題症狀

  • 同一頻率下,fast corner眼圖正常,slow corner眼圖不正常

  • 同樣是PRBS input pattern,低頻率眼圖正常,高頻率眼圖不正常

  • 同樣高頻率下,clock pattern眼圖"看似"正常,PRBS input pattern眼圖不正常

  • 使用Auto. remove (rm_dly_xxx=-1)與Manually remove steady state所得到的眼圖(或電流)結果不同

Over clocking issue在高速IBIS模擬並不罕見,其好發生於高速、slow corner、PRBS pattern。上述眼圖不正常意指:類似(但並不一樣)ISI所引起的相位錯位(如下圖1.4.2),或波形上下振幅縮減(如下圖1.4.3),或轉態瞬間電流不同。

Clock pattern input的眼圖雖然"看起來"正常(如下圖1.4.1),但只要是超頻使用,不連續性問題其實存在。判斷是否已超頻使用 refer to 5.4

1.4.1 Fast corner與clock input pattern的輸出波形

1.4.2 Slower corner與PRBS input pattern的輸出波形 (wrong)

1.4.3 Slower corner, PRBS input pattern與手動設定rm_dly_xxx=20ps、rm_tail_xxx=200ps的輸出波形 (refer to 4.3.3, wrong too)

下圖雖然透過手動設定,強將較多的穩態時間長度移除以消除超頻所引起相位差(錯位)現象,但整個波形振幅卻內縮了(800mV-->760mV),這就是移除了非穩態區造成的振幅內縮。

  1. UI(938ps) >> V-T Window 469ps (高速模型低速使用,大材小用也不好)

2.1 使用1066MHz模型(正確)

2.2 使用2133MHz模型(不正確)

從下圖可以看出,若拿高速的IBIS模型低速使用,所得到的波形上升下降時間會比實際更快。

高速IBIS模型能不能低速用,取決於該I/O在不同的速度等級,是否是同一IP所實現,也就是該I/O跑不同速度(data rate)時,在同一個負載(傳輸線)條件下是否rising/falling time是相同的。

而這跟IC端的特性有關,所以會看到美光DDR3 (v69a.ibs,v89a.ibs)內涵不同速度等級IBIS 1066/ 1600/ 1866/ 2133 ,且註明僅1600可拿來1333用,其餘速度等級的模型是分開的, 而DDR4 (z91b.ibs)就只有3200MHz一級。

2.3 考慮封裝寄生效應對上升/下降時間的影響

  1. UI(469ps) = V-T Window 469ps

3.1 使用2133MHz不同corner(fast\typ\slow) 

Typical delay約687-474=213ps,這個值與step1.3中V-T curve拉到VDD/2所需的時間吻合

不同corner影響的不只有上升與下降斜率,還影響振幅

3.2 初始延遲移除 

若移除V-T表格中的暫態前端資料超過20ps (rm_dly_rwf=100ps),結果就會錯誤

設rm_dly_xxx=100ps不只有造成IBIS輸出時間點往前shift,也造成振幅縮減。這是因為:從V-T curve可看出,只要rm_dly_xxx設超過20ps就會砍掉部分電壓大於零的資料(非穩態區的資料),這樣得到的結果反而是錯的。

為了確保V-T表格中的初始延遲時間足夠長,手動設定rm_dly_xxx不能移除到任何非零的暫態資料(開始上升或非平坦)。為了避免使用者錯誤設定rm_dly_xxx,強烈建議設定rm_dly_xxx=-1,由軟體自動自動安全地移除穩態(平坦)區域。(BUT IBIS 5.1 Power-Aware另有建議refer to 5.6)

3.3 末端穩態移除

    設rm_tail_xxx=100ps對IBIS output完全沒影響(波形完全重疊),因為removal的資料在V-T window中是後段穩態(steady/flat)的部分,所以移除這些資料對波形沒有影響。

  1. UI(300ps) < V-T Window 469ps (模擬頻率超出模型定義,發生超頻)

4.1 使用2133MHz不同corner(fast\typ\slow) 

Typical delay約0.518ns-0.305ns=213ps (與step 1.3相同)

UI=300ps -- 波形"看起來"還可以(沒有異狀)

2133MHz的IBIS模型以3333MHz輸入驅動,輸出波形雖然看起來沒異狀,但其實已經超頻。這條件下如果設rm_dly_xxx/rm_tail_xxx=-1,會發現結果一樣。

UI=230ps -- 波形開始出現問題(像ISI的相位差/錯位)

2133MHz的IBIS模型以4347MHz輸入驅動,輸出波形可以看到開始出現問題。這條件下如果設rm_dly_xxx/rm_tail_xxx=-1,會發現結果還是一樣有問題。也就是auto. removal(auto. trim)並不能修正此時超頻所引起的問題。這是因為美光此模型已經把上升/下降波形定義都盡量往前移了(尾端盡量多留穩態時間),所以當此模型超頻出問題時,auto. removal也沒有可以再多改善的空間。

UI=200ps -- 波形出現明顯問題(像ISI的相位差/錯位)

4.2 初始延遲移除 

4.2.1 If remove some transient data in V-T table, the result will be wrong (as the red, orange curve below is wrong either)

對於此IBIS model來說,remove leading V-T data 20ps以上就會造成輸出波形的振幅明顯失真,故不管是remove initial delay 100ps或160ps的結果,都是錯的。

rm_dly_xxx設100ps振幅會內縮,但設remove rm_dly_rwf=rm_dly_fwf=160ps反而不會,why? 這結果是對的嗎? (錯的)

對此例來說rm_dly_xxx設超過20ps就會看到輸出振福縮減,如上圖紅色線100ps所示;但如果設更大160~169ps反而振幅不會內縮。這是因為IBIS的輸出波形是由V-T curve與V-I curve共同計算得到,如果因為不正確的移除V-T data過多(10%以上的transient data被移除, 會有warning message),導致兩端穩態區對應到V-I的電壓不對,軟體會試著去scaling以對應到正確的V-I endpoint,導致上面看到的結果。

4.2.2 Why can't sport the discontinuity of waveform for over clocking issue? refer to 5.3

4.3 末端穩態移除

    4.3.1 UI=300ps, and rm_tail_xxx=100ps與設rm_tail_xxx=-1結果一樣

    4.3.2 UI=230ps, and rm_tail_xxx=120ps與設rm_tail_xxx=-1結果不一樣,這表示移除得太超過了

    4.3.3 UI=200ps, and rm_tail_xxx=200ps與設rm_tail_xxx=-1結果不一樣,這表示移除得太超過了(over removal),所以手動設定下所得到的波形,雖然沒有相位差的問題,但也是錯的

    即使靠手動設定穩態移除時間可以得到沒有相位錯位現象的波形,但此時的超頻波形仍是錯的。因為我們在1.3中已經從[Rising/Falling waveform]定義中了解,對於slow corner,initial delay最多移除20ps,tail steady state最多移除80ps,超過就不行了(會波形振幅內縮)。

  1. 問題與討論

    IBIS model如果要超頻使用,或是因為使用slow corner得到與SPICE不同的結果,盡量透過rm_dly_xxx設-1讓軟體自動幫你補償優化(remove max. flat V-T data)。如果要自己手動調整rm_dly_xxx設適當正值,則必須確保所移除的data是在穩態範圍內(即原initial delay要夠長,removal不能影響到暫態,只能移除平坦"flat"區段的部分)。

    改善IBIS超頻問題,rm_dly_xxx與rm_tail_xxx通常設定前者即可

    軟體自動做平坦區移除目前還沒設置為默認,是因為比起手動移除,它有時會引入不預期的抖動。當遇到這狀況時,只要把time step設小一點,且transient accurcay設默認(不要設strict)即可。

    即使安全的移除V-T data平坦區,並不保證補償電流不受影響。(for IBIS 5.1 Power-Aware refer to 5.6)

    5.1 (slow,min)或(fast, max)是一樣的結果嗎? 

    Ans:差異雖然不大,但並非一模一樣。

    min指所有參數為min,max指所有參數為max

    slow指部分參數為min,部分參數為max。e.g. current min、temperature min、package parasitic max

    fast指部分參數為min,部分參數為max。e.g. current max、temperature max、package parasitic min

    5.2 IBIS model為何Rising\Falling V-T table (waveform)各有兩組? 

    Ans:分別表示不同終端方式(50歐姆接VDD上拉或GND下拉),所得到的V-T curve。

5.3 如何能觀察出IBIS超頻有問題時的波形不連續性? 

Ans:

5.3.1 IBIS over clocking造成的是元件的"電流"不連續,所以系統中的電容寄生效應,會造成輸出的電壓波形較看不出這不連續特性。這使得問題較不容易被使用者觀察到,通常就算你超頻使用IBIS model,還是只會觀察到"看似正常"的上升或下降緣;但如果你細看,會發現問題點的上升或下降斜率其實是比較大的(比V-T curve所定義的斜率來的大)

5.3.2 另外一個觀察方法是直接觀察元件的output current,在輸入訊號超頻觸發的時間點,可以看到電流的不連續。要觀察這現象,取UI大約是V-T上升曲線的中間時間點,移除package RLC效應,輸出負載以50歐姆接地的方式終端,會比較明顯,如下所示。

5.3.3 嚴重的over clock,會在PRBS input pattern下,看到如下眼圖相位錯位的特徵

5.4 如何估算出一個IBIS模型可運行的最大(最高)頻率? 

Ans:After removing the max. static (flat) initial delay and trail timing, sum Tmin=Tr+Tf, then Fmax=1/Tmin [5]

以本文的v69a來說

slow corner可以運行的最高頻率大約是Tmin=Tr+Tf=(469-140)+(469-150)=648ps, Fmax=1/Tmin=1.54G

fast corner可以運行的最高頻率大約是Tmin=Tr+Tf=(469-190)+(469-200)=548ps, Fmax=1/Tmin=1.8G

相信有讀者此時心中會浮現疑問,為何model明明是2133MHz,但從raising與falling waveform的上升加下降時間算起來,不到2133MHz?

人家是美光ㄟ,美光是業界IBIS model做最好,驗證最完整的公司,怎麼可能給一個不符合其宣稱使用範圍的IO model?

請注意,美光在此IBIS檔頭特別說明,保證1066M/1333MHz的模型與量測(SPICE)相符,但獨獨沒寫1600/2133MHz,you see!

人家沒有忽悠你,是你沒看仔細。

如果改用較新的Micron DDR3 v89c (2016)

slow corner可以運行的最高頻率大約是Tmin=Tr+Tf=(468-175)+(468-210)=551ps, Fmax=1/Tmin=1.8G

fast corner可以運行的最高頻率大約是Tmin=Tr+Tf=(468-265)+(468-240)=431ps, Fmax=1/Tmin=2.3G

以v89c的fast corner跑2133MHz就沒什問題了,但注意slow corner跑不到2133MHz ... 魔鬼藏在細節裡

SPICE是transistor level model,一個model可以跑各種頻率。IBIS是behavior level model,跑不同的頻率要選用不同的model,也就是說跑1066MHz不能選2133MHz model,反之亦然。

5.5 為何某些IBIS模型在Mentor viewer無法顯示,但Sintecs viewer卻可以? 

Ans:

以下是某GDDR5 IBIS model,若以Mentor IBIS viewer打開,會發現無法檢視其raising\falling waveform,原因是V-T data內有遞增或遞減趨勢的資料型態。這樣的資料型態,早期的IBIS並不允許,但新的IBIS是承認的。

所以同一個檔案,Sintecs IBIS viewer可以打開看到完整waveform

5.6 為何手動安全移除穩態區的IBIS 5.1 power-aware模型所得到的SSN電流,仍然與自動移除的不同?

Ans:

    雖然IBIS內所定義的電壓波形長度[Raising/Falling waveform]是決定該模型可以跑多快的關鍵,但通常Power-Aware IBIS的電流波形長度[Composite Current]會大於電壓波形長度,或說[Composite Current]的初始延遲一般較短,僅以考慮電壓波形來自動移除穩態時間長度的超頻做法,其所移除的穩態區,電流可能已經不為零了。

    對於[Composite Current]在超頻使用時如何處理,法規還沒有定義怎麼做。目前筆者建議用IBIS viewer同時觀察[Raising/Falling waveform]與[Composite Current],自行以手動設定較保守的穩態移除時間長度,並且須注意模擬時的time step必須夠小(0.1ns不行, 一般建議10ps)。

  1. Reference 

[1] IBIS VT Waveform and Over Clocking, Synopsys, 2011

[2] Looking for the key words "Transition Settling Times" or "Avoid Overclocking Drivers" in Designer Circuit HELP. R19 p.2535

[3] Initial Time Delay Issue in IBIS VT Curves, Cadence, 2007

[4] Over-Clocking model validation, Toshiba, 2012

[5] IBIS模型的除錯及效能調校, ANSYS SPISim

[6] IBIS's buffer overclocking, ANSYS SPISim